Software users rely on accurate data to perform many different types of operations and tasks. For example, users may rely on the data to be accurate when creating tables, charts, reports, and the like. When users do not trust the accuracy or validity of the data (e.g., non-trusted data) they may: be hesitant in using the data; dispute results based on the data; or may even refuse to use the data. Before the data is received by the user, the data may flow through a data pipeline that includes different nodes that perform transformations on the data. For example, one node in the pipeline may extract a portion of the data from a large data stream, another node in the pipeline may format the data, and another node may store the data. Sometimes, however, the data may become corrupted or change during a transformation. Detecting changes to the data while it is flowing through the data pipeline can be difficult. For example, in some situations an error may not be detected if a failure does not occur at one of the transformation nodes.